#ifndef IFASTDATAAPPROX_H
#define	IFASTDATAAPPROX_H
#define floattype double

#if _MSC_VER >= 1400
#define OVERRIDE override
#define SEALED sealed
#define INTERFACE __interface
#define INHERITANCE :public IUnknown
#define WINAPI WINAPI
#define HRESULT HRESULT
#define VIRTUAL

#else
#define OVERRIDE
#define SEALED
#define INTERFACE class
#define INHERITANCE
#define WINAPI
#include "HRESULT.h"
#define VIRTUAL virtual
#define PUREVIRTUAL =0
#define PUBLIC public:

#endif

typedef struct _APPROXPOINT
{
	floattype x;floattype y;
} APPROXPOINT, *LPAPPROXPOINT;

INTERFACE IFastDataApprox INHERITANCE
{
	PUBLIC
		VIRTUAL HRESULT WINAPI AddBuf(LPAPPROXPOINT points, int len, int *added) PUREVIRTUAL;

		VIRTUAL HRESULT WINAPI GetBuf(LPAPPROXPOINT points, floattype step,	int len, int *filled) PUREVIRTUAL;

		VIRTUAL HRESULT WINAPI EnumBuf(int *index, LPAPPROXPOINT points,int len, int *filled) PUREVIRTUAL;

		VIRTUAL HRESULT WINAPI GetPrecedingPoint(floattype x, int *index) PUREVIRTUAL;

		VIRTUAL HRESULT WINAPI Clear(int start, int stop) PUREVIRTUAL;

		VIRTUAL HRESULT WINAPI Count(int *cnt) PUREVIRTUAL;

	};

#endif	/* IFASTDATAAPPROX_H */

